<?php

/**
 * 小程序服务商管理系统 v1.0.1
 *
 * 商业运营到axzz.cn官网进行授权使用。
 *
 * (c) cighsen02 <xiayu@959602.com>
 *
 * Create at：2025.04.18
*/

namespace App\Services\Auth;

use App\Models\User;
use Illuminate\Support\Facades\Hash;

/**
 * 基类
 */
abstract class UserService
{
    /**
     * 通过邮箱获取用户
     *
     * @param string $email
     * @return User|null
     */
    protected function findUserByEmail(string $email): ?User
    {
        return User::where('email', $email)->first();
    }

    /**
     * 增加用户
     *
     * @param array $data
     * @param string $role
     * @return User
     */
    protected function create(array $data, string $role = 'member'): User
    {
        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);

        // 分配默认角色
        $user->assignRole($role);

        return $user;
    }
}
